CROSS-REFERENCE TO OTHER APPLICATIONS
The following application of common assignee contains some common disclosure, and is believed to have an effective filing date identical with that of the present application:
U.S. patent application entitled "A System and Method for Sharpening Texture Imagery in Computer Generated Interactive Graphics", by Bob Drebin and Greg Buchner, now U.S. Pat. No. 5,438,654, incorporated herein by reference in its entirety.
1. Field of the Invention
The present invention relates generally to texture imagery in computer generated interactive graphics, and more particularly to adding detail to texture imagery in computer generated interactive graphics.
2. Related Art
A typical computer generated image comprises a plurality a polygons. Each polygon may contribute to one or more pixels of the final image (a pixel is a picture element of a display means), wherein each of the pixels may have a unique color based on such attributes as intrinsic color, lighting (specular highlights, shading, shadows, etc.), atmospheric effects (fog, haze, etc.), and texture. As is well known, textures are conventionally used to provide visual detail for polygon surfaces.
Conventional computer image generation systems store varying levels of detail (LOD) of texture data. LOD is described in many publicly available documents, such as "Texture Tile Considerations for Raster Graphics", William Dugan, Jr., et al., SIGGRAPH 1978 Proceedings, Vol. 12 #3, August 1978, which is herein incorporated by reference in its entirety.
FIG. 1B illustrates the LODs stored for a particular image. LOD[0], also called the base texture, is shown in FIG. 1B as being an 8.times.8 texture. The base texture LOD[0] is the highest resolution texture. LOD n represents the base texture LOD[0] magnified by a factor of 2.sup.-n (other magnification factors could also be used). Thus, LOD[1] is a 4.times.4 texture, LOD[2] is a 2.times.2 texture, and LOD[3] is a 1.times.1 texture.
LODs of resolutions greater than the base texture LOD[0] are usually not stored due to memory limitations. For example, the memory requirement to store LOD[-1] (a 16.times.16 texture) is four times that to store LOD[0]. Similarly, a system which stores six LODs (that is, LOD[-1], LOD[-2], . . . , LOD[-6]) of resolutions greater than LOD[0] would require over 8,000 times more memory than a system which stores only LOD[0] (and LODs lower in resolution than LOD[0]). Thus, storing LODs of greater resolution than the base texture LOD[0] is expensive and not practical.
A conventional texture technique is to map a two dimensional grid of texture data to an initially constant color polygon. This technique produces high quality results as long as an approximately 1:1 ratio of texture elements (texels) to display elements (pixels) is maintained. During successive magnification operations, LODs of greater and greater resolution are required to maintain the 1:1 ratio. Often, the required magnification is such that the 1:1 ratio cannot be maintained even when the base texture LOD[0] is used. In such cases (in conventional systems), data from the base texture are interpolated to perform the magnification. However, this results in an image lacking sufficient high frequency detail since the content of a single texture cell significantly affects more than one pixel of a display means (a cell is the smallest unit of characteristic definition that is accessible by the system).
More particularly, one problem that occurs when the required magnification is such that the 1:1 ratio of texel to pixel cannot be maintained even when the base texture LOD[0] is used is that the texture lacks sufficient detail for close-ups as a result of over magnification.
A conventional approach for solving this problem (i.e., lacking sufficient detail) is described in U.S. Pat. No. 4,974,176 to Buchner et al. entitled "Microtexture For Close-In Detail". This patent describes a system for providing apparent texture detail by adding random noise to a base texture. While being a technological advance, this system is flawed in that the detail added to the texture is not related to the original source image from which the base texture was derived.
Thus, what is required is a system and method that provides sufficient detail for close ups, when the image is magnified beyond the resolution of the base texture LOD[0], without having to store textures of higher resolution than the base texture LOD[0].